/* 
req(request)对象是路由回调函数的第一个参数  代表的是用户给服务器的请求信息
通过这个req对象可以读取用户发送的请求报文数据 包括: 请求行  请求头  请求体  还可以解析出请求参数 query params(path)  body 
属性和方法:
req.get(xx)  获取请求头中指定key对应的value
req.query    获取请求的查询字符串参数 拿到的是一个对象
req.params   获取请求的路径参数，拿到的是一个对象
req.body     获取post请求体，拿到的是一个对象（要借助一个中间件）
*/

const express = require('express')

const app = express()

app.use(express.static('public'))

app.get('/index', (req, res) => {
  console.log(req.method) // get
  console.log(req.url)  // /index?a=1&b=2
  console.log(req.httpVersion) // 1.1
  console.log(req.headers['host']) // localhost:8801
  console.log(req.path) // /index
  console.log(req.get('host')) // localhost:8801

  const { a, b } = req.query
  console.log('query参数', a, b)

  res.send('get 返回数据')
})


app.post('/index', (req, res) => {
  console.log('处理 /index post请求')
  console.log('body参数', req.body) 
  res.send('post 返回数据')
})


app.get('/user/:id', (req, res) => {
  const {id} = req.params
  const user = allUsers.find(user => user.id === +id)
  res.send(user)
})


app.listen('8801', () => {
  console.log('服务已启动: http://localhost:8801')
})